home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / debugtx.arc / 01INTRO.DOC < prev    next >
Encoding:
Text File  |  1991-08-11  |  15.4 KB  |  323 lines

  1. CHAPTER 1   INTRODUCTION AND LEGAL TERMS                  1-1
  2.  
  3.  
  4. Introduction
  5.  
  6. A86 is the finest assembler available, at any cost under any 
  7. terms, for the 86-family of microprocessors (IBM-PC, compatibles, 
  8. and not-so-compatibles).  In contrast to software firms who 
  9. attempt to restrict the distribution of their products via 
  10. protection-schemes, I encourage free distribution, and trust that 
  11. those who use my products will pay for them.  
  12.  
  13. Please keep in mind the fundamental good spirit of free-
  14. distribution software as you endure the following barrage of 
  15. legalities.  Then evaluate the outstanding value that the A86 
  16. package offers you.  I assure you that you will not be 
  17. disappointed.  
  18.  
  19.  
  20. Legal Terms and Conditions 
  21.  
  22. This package is provided to you under the following conditions: 
  23.  
  24. 1. You may copy this entire package, and give it to anyone who 
  25.    accepts these terms.  The copies you distribute must be 
  26.    complete and unmodified.  You do not have to be registered to 
  27.    distribute this package.  
  28.  
  29. 2. You may execute the programs in this package, in order to 
  30.    evaluate them.  If you decide that any of this package is of 
  31.    use to you, you must become a registered user by sending $40 
  32.    US to: 
  33.  
  34.       Eric Isaacson
  35.       416 E. University Street
  36.       Bloomington, IN 47401 
  37.  
  38.    For your convenience, I now accept Visa and MasterCard, by 
  39.    telephone.  My number is (812)339-1811.
  40.  
  41.    For the convenience of users in Great Britain, I have 
  42.    authorized the firm Shareware Marketing to collect 
  43.    registrations for me.  If you register through them you MUST 
  44.    get the update disk, since most of their profit comes from the 
  45.    update.  If you don't want the update right away you can ask 
  46.    them to give you a voucher good for an update in the future. 
  47.    We'll try to keep the prices about the same whether you 
  48.    register through me or through them; it's your choice.  Their 
  49.    address is 87 High Street, Tonbridge, Kent TN9 1RX; telephone 
  50.    0732 358125.  They'll send me a list of registered users at 
  51.    the end of every month, and I'll send an acknowledgement to 
  52.    each user when I get the list.  So if you haven't heard from 
  53.    me by the third week of the month following your registration 
  54.    with them, please let me know. 
  55.                                                           1-2
  56.    Registered users may order update-diskettes (5.25 inch, double 
  57.    density) for $10 US, or $12 US if you are overseas. (In other 
  58.    words, send $50, $52 if overseas, if you want to register and 
  59.    get an update-diskette.)  Once you register for this package, 
  60.    you are registered for all future versions.  As long as I'm in 
  61.    business, you can get the latest version for just the update
  62.    fee.
  63.  
  64.    I have a combination offer for the A86 and D86 packages.  
  65.    Instead of $40 + $40 = $80, I charge $70 for both; $80 for 
  66.    both with an update.  
  67.  
  68.    Indiana residents need to add sales tax.  At the current rate 
  69.    of 5%, the prices for Indiana residents are $42 for one 
  70.    product, $52.50 for one product with update, $73.50 both 
  71.    products, $84 both products with update. 
  72.  
  73.    You need to get an update disk to get the tool A86LIB 
  74.    available only to registered users.  So almost all of you 
  75.    should send $50 for A86, $80 for both A86 and D86.
  76.  
  77.    Educational institutions and training facilities MUST be 
  78.    registered in order to use A86 in courses.  Contact me for 
  79.    special terms.  
  80.  
  81.    Companies and government agencies MUST be registered in order 
  82.    to use A86 for their work.  Again, contact me for special 
  83.    terms.  
  84.  
  85. 3. You may not sell this package to anyone.  If you distribute 
  86.    this package on a diskette, any fees you collect must be 
  87.    specified as materials/handling, and may not exceed $10 for 
  88.    the diskette.  
  89.  
  90. 4. You are completely responsible for determining the fitness or 
  91.    usability of this package.  I will not be liable for any 
  92.    damages, of any kind, arising from any failure of any programs 
  93.    in this package to perform as expected.  
  94.  
  95. 5. You must be a registered user to sell or distribute any 
  96.    programs that you have written or modified using this 
  97.    assembler.  If you do sell or distribute such programs, you 
  98.    must insure that your registered name (company or individual) 
  99.    will always be distributed with the program, so that I can 
  100.    verify your registration.  Any individual or company found to 
  101.    be violating these terms will be liable for triple 
  102.    registration fees for every machine they own capable of 
  103.    running my assembler (plus any legal and court costs).  
  104.  
  105. 6. This assembler uses a code-generation "footprint" that will 
  106.    enable me to tell, and to demonstrate in a court of law, if a 
  107.    non-trivial object file has been produced by my assembler.  
  108.    The specification for this "footprint" is sufficiently obscure 
  109.    and complicated that it would be impossible to duplicate by 
  110.    accident.  I claim exclusive rights to the particular 
  111.    "footprint" I have chosen, and prohibit anyone from 
  112.    duplicating it.  This has at least two specific implications: 
  113.                                                           1-3
  114.    a. Any assembler that duplicates the "footprint" is mine.  If 
  115.       it is not identified as mine and issued under these terms, 
  116.       then those who sell or distribute the assembler will be 
  117.       subject to prosecution.  
  118.  
  119.    b. Any program marked with the "footprint" has been produced 
  120.       by my assembler.  It is subject to condition 5 above.  
  121.  
  122.    *** NOTE: If you have the impression that the "footprint" adds 
  123.        bytes to your program file, you are wrong.  You retain 
  124.        complete control over the object code generated.  A86 
  125.        takes advantage of situations in which more than one set 
  126.        of object codes can be generated for a given instruction: 
  127.        the "footprint" consists of a complicated mix of choices 
  128.        in such situations.  
  129.  
  130. Overview of A86
  131.  
  132. A86 accepts assembly-language source files, and transforms them 
  133. directly into either: (1) .COM files executable under MS-DOS, 
  134. starting at offset 0100 within a code segment; (2) .OBJ files 
  135. suitable for feeding to a linker; or (3) object files starting at 
  136. offset 0, suitable for copying to ROMs.  A86 is a full-featured, 
  137. professional-quality program. I designed A86 to be as closely 
  138. compatible to the standard Intel/IBM assembly language as 
  139. possible, given that I insisted upon making design and language 
  140. enhancements necessary to make A86 the world's finest assembler.  
  141. Some of A86's most notable features are: 
  142.  
  143. * A86 is blazingly fast.  Don't believe the advertisements of 
  144.   that other, big company.  THIS is the fastest MSDOS macro 
  145.   assembler, bar none.  In the best conditions (large program, 
  146.   8MHz AT,  RAM drive) A86 assembles at a rate of over a thousand 
  147.   lines per second.  That's per second.  NOT per minute, per 
  148.   second.  
  149.  
  150. * A86 is simple to use.  You can feed it a program containing 
  151.   just machine instructions, without the red-tape (NAME, ASSUME, 
  152.   SEGMENT PARA PUBLIC, PROC, ENDP, END, PUBLIC, EXTRN, etc. etc.) 
  153.   necessary with other assemblers.  The output of A86 can be a 
  154.   .COM file, ready to execute immediately.  You don't have to go 
  155.   through a linker.  Or, if you want to go through a linker, A86
  156.   will produce a correct .OBJ file even if no red-tape directives 
  157.   are given-- the default settings are compatible with most high-
  158.   level languages.  (If you have programs written for that other 
  159.   assembler containing the red-tape directives, you may leave 
  160.   them in: A86 knows about them, and is programmed to act upon
  161.   them when assembling .OBJ files, and ignore them if assembling
  162.   .COM files.) 
  163.  
  164. * In spite of its simplicity, A86 encourages modular programming, 
  165.   even in its .COM mode, with separately-developed source files.  
  166.   This is because A86 assembles multiple source files in its 
  167.   invocation line; and because A86 assembles source files faster 
  168.   than other people's linkers can link their object files.  You 
  169.   get all the advantages of relocation/linkage systems (building 
  170.   up libraries of reliable program modules that you can piece 
  171.   together), without the disadvantages (excessive, time-and-
  172.   source-code-wasting, confusing red tape).  
  173.                                                           1-4
  174. * A86 has ample capacity for really large programming projects.  
  175.   Its symbol-table capacity is approximately 1500 10-letter 
  176.   symbols, plus room for 8K-bytes of compressed macro-definition 
  177.   text.  (10 letters is an average symbol length; A86 recognizes 
  178.   up to 127 letters in a symbol.) Plus, A86's generic local-label 
  179.   facility effectively doubles your symbol table capacity.  
  180.  
  181. * A86 has language extension features that, once you start using, 
  182.   you'll never want to do without.  These include multiple 
  183.   operands to PUSH and POP; conditional returns; MOV from one 
  184.   segment register to another; assembly-time assertion checking; 
  185.   based structures; and IF (flag) (statement).  
  186.  
  187. * A86's macro-processor is the best, achieving an optimal balance 
  188.   between ease of use and raw power.  Its looping and text 
  189.   concatenation abilities let you define sophisticated macros, 
  190.   whose calls look just like the machine instructions that 
  191.   surround them; without the clumsy invocation-syntax required by 
  192.   other macro-processors of A86's power.  
  193.  
  194. * A86 provides clear, English error messages, given right at the 
  195.   point in the source code where A86 detected the error.  The 
  196.   messages are actually inserted into your source file, where you 
  197.   can read them and correct your code at the same time.  You can 
  198.   remove the messages yourself, or A86 will remove them for you 
  199.   when it reassembles the file.  (Fear not: your original source 
  200.   is preserved in x.OLD if you want it.  Or you can disable this 
  201.   feature and send error messages to a .ERR file.) 
  202.  
  203. * A86 provides a full complement of assembly-time expression 
  204.   arithmetic operators, compatible with Intel/IBM assemblers.  
  205.   A86 also provides 4-function floating-point arithmetic in 
  206.   assembly-time expressions used for floating-point 
  207.   initializations (an A86-exclusive feature).
  208.   
  209. * A86 assembles the floating-point instruction set of the 
  210.   8087/287, and the extended instruction set of the 186/286/NEC 
  211.   series.  This now includes the NEC-unique instructions, which I 
  212.   had been unaware of until somebody pointed them out to me.  
  213.  
  214. * A86 has a built-in source-file library feature.  Any undefined 
  215.   symbols in your program are automatically searched for in a 
  216.   special library file A86.LIB, and the associated source files 
  217.   are automatically assembled.  This makes access to library 
  218.   routines as effortless as it is in the "C" programming 
  219.   language.  A sample A86.LIB file is included in this package 
  220.   for your evaluation, but you'll have to register to obtain the 
  221.   tool A86LIB, with which you can create your own library files. 
  222.  
  223. * A86 works with an associated symbolic debugger, D86, to make 
  224.   the finest development environment available for the PC.  See 
  225.   the D86 package, available now, for the details of its 
  226.   wonderful features.  
  227.                                                           1-5
  228. Who IS That Guy?
  229.  
  230. For those of you who wish to know what credentials I have for 
  231. producing programs that meet the above claims, let me tell you 
  232. who I am.  I am an independent software consultant.  I have 
  233. worked with Intel microprocessors since the early days of the 
  234. 8080.  As an employee of Intel, I was a part of the two-man team 
  235. that implemented the first ASM86 assembler.  I am one of the 
  236. world's leading authorities on the entire 86-family of 
  237. microcomputers, having completed numerous major projects 
  238. involving the 8086, and 80186, and the 80286.  I just completed 
  239. a book on the 386/387 architecture, to be published in late July 
  240. by Wiley and Sons.    
  241.  
  242. A86 and D86 themselves are mature, solid programs.  They have 
  243. been in existence for 3 years, running first under my own, 
  244. proprietary operating system; then later under the Xenix 
  245. operating system on Altos computers, used by myself and my 
  246. clients.  
  247.  
  248. Although I have been unknown to the world of the IBM-PC until 
  249. A86, I intend to change all that in the next couple of years.  
  250. Peter Norton, watch out.
  251.  
  252.  
  253. Support Your Local Bulletin Board 
  254.  
  255. Bob Breedlove, a BBS Sysop in California, sent me a suggestion 
  256. with his registration: that I do something to support Sysops, 
  257. since they are distributing my software for me.  Good point, Bob.  
  258. Let me try this experiment (but I reserve the legal right to 
  259. cancel this offer at any time, without notice): if anybody who 
  260. registers wishes to support the BBS from which they obtained my 
  261. program, they should tell me the name and phone number of the BBS 
  262. when they register.  They should also leave a message to the 
  263. Sysop that they have done so, so the Sysop can contact me with 
  264. his/her address.  If I receive 5 registrations naming a 
  265. particular BBS, I'll award a free registration to the Sysop-- the 
  266. Sysop can designate who the registration is for; or (if the Sysop 
  267. has already paid for a registration) he/she can elect to receive 
  268. a cash refund.  For each subsequent 5 registrations, I'll send 
  269. the Sysop a cash rebate equal to one half the registration fee.  
  270. Sorry, no bonuses for less than 5 registrations; I don't want to 
  271. be swamped with paperwork.  
  272.  
  273.  
  274. How to Get in Touch With Me
  275.  
  276. For earlier versions of A86, I didn't give out my telephone 
  277. number, because I was afraid that all my time would be chewed 
  278. up giving telephone support.  But then I attended a convention 
  279. of shareware programmers, in which the Big Boys (Wallace, 
  280. Button, Magee, etc.) unanimously agreed that a product needs 
  281. telephone support to be successful.  I'm still not completely 
  282. convinced for my case; assembly langauge is so complicated that 
  283.                                                           1-6
  284. it would be pretty easy to abuse support privileges.  But almost 
  285. everybody who has called directory assistance and then phoned me 
  286. anyway has provided me with useful inputs with their problems.  
  287. Also, now that I accept credit cards, there's a financial 
  288. interest in giving people increased access to me.  So I'll field 
  289. questions from REGISTERED users (and you can register on the 
  290. spot, with a credit card).
  291.  
  292. So now your choices for contacting me are:
  293.  
  294. 1. Phone me by voice at (812)339-1811.  Have your credit card 
  295.   ready if you haven't registered yet.  If you get an answering 
  296.   machine, give your card number, expiration date, name as it 
  297.   appears on the card, address, city, state, zip, phone number 
  298.   with area code, which product or products your are registering 
  299.   for, and the amount.
  300.    
  301.   Sorry, but my current financial condition is such that I can't 
  302.   guarantee to return everybody's long-distance calls.  If you'd 
  303.   like to be SURE I'll get back to you, please invite me to call 
  304.   you back collect, or tell to charge the cost of the call to 
  305.   your credit-card. 
  306.   
  307. 2. Write to me.  Please enclose a stamped-self-addressed envelope 
  308.   if you want a reply.  
  309.   
  310. 3. Leave me bulletin-board mail, on the Bloomington PC-Link 
  311.   Central bulletin board, at (812)335-7252; or Indiana On-Line, 
  312.   at (812)332-7227.  I'll reply on the same board. 
  313.  
  314. PLEASE contact me if you find bugs in my programs; I'll fix them! 
  315. It's very frustrating to hear about people telling each other 
  316. about bugs, and not telling me.  I still await your bug list, 
  317. Greg Wettstein. 
  318.  
  319.  
  320.  
  321.  
  322.  
  323.